home *** CD-ROM | disk | FTP | other *** search
/ Your Web Site Creator / Your Web Site Creator.iso / WebSite / data1.cab / Program_Executable_Files / Classes / TXTMCAN2.CLA (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-13  |  6.0 KB  |  227 lines

  1. import java.applet.Applet;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Graphics;
  9. import java.awt.Image;
  10. import java.util.Random;
  11.  
  12. public class TextManiacCanvas2 extends Canvas implements Runnable {
  13.    Thread appThread;
  14.    Image osImage;
  15.    Graphics osg;
  16.    Color bkColor;
  17.    Image bkImage;
  18.    String message;
  19.    Color[] color;
  20.    int[] xPos;
  21.    int[] yPos;
  22.    Font[] font;
  23.    // $FF: renamed from: fm java.awt.FontMetrics[]
  24.    FontMetrics[] field_0;
  25.    int[] xRangeMin;
  26.    int[] xRangeMax;
  27.    int[] yRangeMin;
  28.    int[] yRangeMax;
  29.    int[] xMovement;
  30.    int[] yMovement;
  31.    Color[] defColor;
  32.    boolean[] randomColor;
  33.    boolean[] randomXPos;
  34.    boolean[] randomYPos;
  35.    Random randomizer;
  36.    int delayTime;
  37.  
  38.    public TextManiacCanvas2(Applet var1, int var2) {
  39.       this.GetParameters(var1, var2);
  40.       this.defColor = new Color[13];
  41.       this.defColor[0] = Color.black;
  42.       this.defColor[1] = Color.blue;
  43.       this.defColor[2] = Color.cyan;
  44.       this.defColor[3] = Color.darkGray;
  45.       this.defColor[4] = Color.gray;
  46.       this.defColor[5] = Color.green;
  47.       this.defColor[6] = Color.lightGray;
  48.       this.defColor[7] = Color.magenta;
  49.       this.defColor[8] = Color.orange;
  50.       this.defColor[9] = Color.pink;
  51.       this.defColor[10] = Color.red;
  52.       this.defColor[11] = Color.white;
  53.       this.defColor[12] = Color.yellow;
  54.       this.randomizer = new Random(System.currentTimeMillis());
  55.    }
  56.  
  57.    void GetParameters(Applet var1, int var2) {
  58.       String var3 = var1.getParameter("textManiacBkColor" + var2);
  59.       this.bkColor = AppletParam2.GetColor(var3, (Color)null);
  60.       if (this.bkColor != null) {
  61.          ((Component)this).setBackground(this.bkColor);
  62.       }
  63.  
  64.       var3 = var1.getParameter("textManiacBkImage" + var2);
  65.       this.bkImage = var1.getImage(var1.getCodeBase(), var3);
  66.       var3 = var1.getParameter("textManiacDelayTime" + var2);
  67.       this.delayTime = AppletParam2.GetInt(var3, 250);
  68.       var3 = var1.getParameter("textManiacMessage" + var2);
  69.       this.message = AppletParam2.GetString(var3, "Message");
  70.       this.color = new Color[this.message.length()];
  71.       this.xPos = new int[this.message.length()];
  72.       this.yPos = new int[this.message.length()];
  73.       this.font = new Font[this.message.length()];
  74.       this.field_0 = new FontMetrics[this.message.length()];
  75.       this.xRangeMin = new int[this.message.length()];
  76.       this.xRangeMax = new int[this.message.length()];
  77.       this.yRangeMin = new int[this.message.length()];
  78.       this.yRangeMax = new int[this.message.length()];
  79.       this.xMovement = new int[this.message.length()];
  80.       this.yMovement = new int[this.message.length()];
  81.       this.randomColor = new boolean[this.message.length()];
  82.       this.randomXPos = new boolean[this.message.length()];
  83.       this.randomYPos = new boolean[this.message.length()];
  84.  
  85.       for(int var4 = 0; var4 < this.message.length(); ++var4) {
  86.          var3 = var1.getParameter("textManiacFont," + var4 + "," + var2);
  87.          this.font[var4] = AppletParam2.GetJavaFont(var3);
  88.          this.field_0[var4] = ((Component)this).getFontMetrics(this.font[var4]);
  89.          var3 = var1.getParameter("textManiacColor," + var4 + "," + var2);
  90.          this.color[var4] = AppletParam2.GetColor(var3, Color.black);
  91.          var3 = var1.getParameter("textManiacXPos," + var4 + "," + var2);
  92.          this.xPos[var4] = AppletParam2.GetInt(var3, 0);
  93.          var3 = var1.getParameter("textManiacYPos," + var4 + "," + var2);
  94.          this.yPos[var4] = AppletParam2.GetInt(var3, 0);
  95.          var3 = var1.getParameter("textManiacXRangeMin," + var4 + "," + var2);
  96.          this.xRangeMin[var4] = AppletParam2.GetInt(var3, 0);
  97.          var3 = var1.getParameter("textManiacXRangeMax," + var4 + "," + var2);
  98.          this.xRangeMax[var4] = AppletParam2.GetInt(var3, 0);
  99.          var3 = var1.getParameter("textManiacYRangeMin," + var4 + "," + var2);
  100.          this.yRangeMin[var4] = AppletParam2.GetInt(var3, 0);
  101.          var3 = var1.getParameter("textManiacYRangeMax," + var4 + "," + var2);
  102.          this.yRangeMax[var4] = AppletParam2.GetInt(var3, 0);
  103.          var3 = var1.getParameter("textManiacXMovement," + var4 + "," + var2);
  104.          this.xMovement[var4] = AppletParam2.GetInt(var3, 1);
  105.          var3 = var1.getParameter("textManiacYMovement," + var4 + "," + var2);
  106.          this.yMovement[var4] = AppletParam2.GetInt(var3, 1);
  107.          var3 = var1.getParameter("textManiacRandomColor," + var4 + "," + var2);
  108.          this.randomColor[var4] = AppletParam2.GetBoolean(var3, false);
  109.          var3 = var1.getParameter("textManiacRandomXPos," + var4 + "," + var2);
  110.          this.randomXPos[var4] = AppletParam2.GetBoolean(var3, false);
  111.          var3 = var1.getParameter("textManiacRandomYPos," + var4 + "," + var2);
  112.          this.randomYPos[var4] = AppletParam2.GetBoolean(var3, false);
  113.       }
  114.  
  115.    }
  116.  
  117.    public void Start() {
  118.       this.appThread = new Thread(this);
  119.       this.appThread.start();
  120.    }
  121.  
  122.    public void Stop() {
  123.       this.appThread.stop();
  124.       this.appThread = null;
  125.    }
  126.  
  127.    public void update(Graphics var1) {
  128.       if (this.osImage == null) {
  129.          this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  130.          this.osg = this.osImage.getGraphics();
  131.       }
  132.  
  133.       this.osg.setColor(((Component)this).getBackground());
  134.       this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  135.       if (this.bkImage != null) {
  136.          int var2 = this.bkImage.getWidth(this);
  137.          int var3 = this.bkImage.getHeight(this);
  138.          int var4 = ((Component)this).size().width / var2;
  139.          int var5 = ((Component)this).size().height / var3;
  140.          ++var4;
  141.          ++var5;
  142.  
  143.          for(int var6 = 0; var6 < var5; ++var6) {
  144.             for(int var7 = 0; var7 < var4; ++var7) {
  145.                this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
  146.             }
  147.          }
  148.       }
  149.  
  150.       for(int var8 = 0; var8 < this.message.length(); ++var8) {
  151.          if (!this.randomColor[var8]) {
  152.             this.osg.setColor(this.color[var8]);
  153.          } else {
  154.             this.osg.setColor(this.defColor[Math.abs(this.randomizer.nextInt()) % 13]);
  155.          }
  156.  
  157.          this.osg.setFont(this.font[var8]);
  158.          this.osg.drawString(this.message.substring(var8, var8 + 1), this.xPos[var8], this.yPos[var8]);
  159.       }
  160.  
  161.       var1.drawImage(this.osImage, 0, 0, this);
  162.    }
  163.  
  164.    public void run() {
  165.       while(true) {
  166.          try {
  167.             ((Component)this).repaint();
  168.             Thread.sleep((long)this.delayTime);
  169.             this.UpdateChars();
  170.          } catch (InterruptedException var1) {
  171.          }
  172.       }
  173.    }
  174.  
  175.    public Dimension minimumSize() {
  176.       return new Dimension(10, 10);
  177.    }
  178.  
  179.    public Dimension preferredSize() {
  180.       return new Dimension(10, 10);
  181.    }
  182.  
  183.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  184.       super.reshape(var1, var2, var3, var4);
  185.       this.osImage = null;
  186.       this.osg = null;
  187.    }
  188.  
  189.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  190.       ((Component)this).repaint();
  191.       return true;
  192.    }
  193.  
  194.    void UpdateChars() {
  195.       for(int var1 = 0; var1 < this.message.length(); ++var1) {
  196.          if (!this.randomXPos[var1]) {
  197.             int[] var10000 = this.xPos;
  198.             var10000[var1] += this.xMovement[var1];
  199.             if (this.xPos[var1] < this.xRangeMin[var1]) {
  200.                this.xPos[var1] = this.xRangeMin[var1];
  201.                this.xMovement[var1] = -this.xMovement[var1];
  202.             } else if (this.xPos[var1] > this.xRangeMax[var1]) {
  203.                this.xPos[var1] = this.xRangeMax[var1];
  204.                this.xMovement[var1] = -this.xMovement[var1];
  205.             }
  206.          } else if (this.xMovement[var1] != 0) {
  207.             this.xPos[var1] = Math.abs(this.randomizer.nextInt()) % (this.xRangeMax[var1] - this.xRangeMin[var1] + 1) + this.xRangeMin[var1];
  208.          }
  209.  
  210.          if (!this.randomYPos[var1]) {
  211.             int[] var2 = this.yPos;
  212.             var2[var1] += this.yMovement[var1];
  213.             if (this.yPos[var1] < this.yRangeMin[var1]) {
  214.                this.yPos[var1] = this.yRangeMin[var1];
  215.                this.yMovement[var1] = -this.yMovement[var1];
  216.             } else if (this.yPos[var1] > this.yRangeMax[var1]) {
  217.                this.yPos[var1] = this.yRangeMax[var1];
  218.                this.yMovement[var1] = -this.yMovement[var1];
  219.             }
  220.          } else if (this.yMovement[var1] != 0) {
  221.             this.yPos[var1] = Math.abs(this.randomizer.nextInt()) % (this.yRangeMax[var1] - this.yRangeMin[var1] + 1) + this.yRangeMin[var1];
  222.          }
  223.       }
  224.  
  225.    }
  226. }
  227.